代码改变世界

时间复杂度计算总结【持续更新】

2016-07-18 15:45  chercher  阅读(405)  评论(0编辑  收藏  举报

1. 基础

用T来表示问题的规模,用O来表示时间复杂度

最基本的思想是用单一过程需要的时间乘以次数,忽略低阶的多项式以及多项式的系数

2. 例子

通过O(n)的时间,把n的问题,变为了n/2的问题,复杂度是多少 

T(n) = T(n/2) + O(n) = (T(n/4) + O(n/2)) + O(n) = ... 约等于O(logn)

 

通过O(1)的时间,把n的问题,变为了两个n/2的问题,复杂度是多少

可以用一个树形的结构来表示 O(n) = O(1) + 2*O(1) + 4 * O(1)... 约O(nlogn)